#ifndef _TANKFACTORY_H
#define _TANKFACTORY_H


#include "Tank.h"
#include "TankTurret.h"
#include "TankBody.h"
#include "TankGun.h"
#include <string>

class TankFactory {
  public:
    static _Tank BuildTank(std::string body, std::string chasis);

    static _Tank BuildBase1Tank();

    static _TankTurret MountTurret(const _TankBody & tankBody, char slot, std::string name);

    static _TankGun MountGun(const _TankTurret & tankTurret, char slot, std::string name);


  private:
    // operations
    // Never to be created
    inline TankFactory(void ) {};

    inline ~TankFactory(void ) {};

};
#endif
